package com.china08.yxyapi.service.manage.stu.mystudy.homework.dowork;

import java.util.List;

/**
 * 家庭作业service类 2017年3月10日11:18:20
 * 
 * @author lys
 *
 */
public interface HomeworkSrevice {

    /**
     * 提交 一道 单选和多选题的方法 2017年4月21日11:52:35
     * 
     * @param studentId
     *            学生ID
     * @param questId
     *            当前提交试题ID
     * @param answerOfMy
     *            我的回答 单选 A B C D 多选 A,B 的格式
     * @param duration
     *            本题使用时间递增。如一道题第一次提交时用了一分钟，那么第二次提交的时候，总共用了两分钟
     *            那么只需要提交第一次提交以后又用了多长时间。即提交为1分钟，单位为秒
     * @param taskId
     *            当前题的任务ID
     * @param classId
     *            当前学生的班级ID 统计用
     * @return 成功则返回true 失败则为false
     */
    boolean commitHomeworkForXZ(String studentId, String questId, String answerOfMy, Integer duration, String taskId);

    /**
     * 
     * 创建答题记录 2017年4月21日11:52:38
     * 
     * @param studentId
     * @param taskId
     * @return
     */
    boolean buildAnswers(String studentId, String taskId);

    /**
     * 保存通知类中当前写的作业内容的方法（不提交作业）
     * 
     * @param studentId
     * @param quesId
     * @param answerOfMy
     * @param duration
     * @param taskId
     * @return
     */
    boolean saveHomeworkForZG(String studentId, String quesId, String answerOfMy, Integer duration, String taskId,
            List<String> answerImgs);

    /**
     * 保存阅读类作业的阅读时间
     * 
     * @param studentId
     * @param quesId
     * @param duration
     * @param taskId
     * @param index
     * @return
     */
    boolean saveHomeworkForYD(String studentId, String quesId, Integer duration, Integer lookTime, String taskId,
            Integer index);

    /**
     * 提交作业的方法
     * 
     * @param studentId
     * @param taskId
     * @param homeworkType
     *            “通知”为提交的通知类作业，“试题”为试题类型作业
     * @return
     */
    Boolean commitHomework(String studentId, String taskId, String homeworkType);

    /**
     * 获取当前任务的做题时长
     * 
     * @param studentId
     * @param taskId
     * @return
     */
    Long getDuration(String studentId, String taskId);

    /**
     * 超过截止时间后执行的方法
     * 
     * @return
     * 
     * @return
     */
    void timeOver(String studentId, String taskId);

    /**
     * 电子书包提交一个学生的任务
     * 
     * @param studentId
     * @param taskId
     * @param homeworkType
     * @param classId
     */
    void ebagCommitHomeWork(String studentId, String taskId, String homeworkType);

}
